package com.shop.cloud.domain.hongfu;

import io.swagger.annotations.ApiModelProperty;

import java.sql.Timestamp;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.shop.cloud.common.mybatis.BaseEntity;

/**
 * 
 * user-user
 *
 */
/**
 * @author innke
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler",
		"fieldHandler" }, ignoreUnknown = true)
public class User extends BaseEntity {

	private static final long serialVersionUID = 1L;

	public static final int SEX_MALE = 1;
	public static final int SEX_FEMALE = 2;

	public static final int THIRD_PARTY_USER_QQ = 0;
	public static final int THIRD_PARTY_USER_WEIXIN = 1;
	public static final int THIRD_PARTY_USER_WEIBO = 2;

	public static final int TYPE_NORMAL = 0;
	public static final int TYPE_SHOPKEEPER = 1;
	public static final int TYPE_SALESMAN = 2;

	/**
	 * 手机号码
	 */
	@ApiModelProperty(value = "手机号码")
	private String phone;
	/**
	 * 昵称
	 */
	@ApiModelProperty(value = "昵称")
	private String nickname;
	/**
	 * 性别\r\n1：男\r\n2：女
	 */
	@ApiModelProperty(value = "性别\r\n1：男\r\n2：女")
	private Integer sex;
	/**
	 * 会员等级。\r\n0：无等级\r\n1：银牌会员\r\n2：金牌会员
	 */
	@ApiModelProperty(value = "会员等级。\r\n0：无等级\r\n1：银牌会员\r\n2：金牌会员")
	private Integer level;
	/**
	 * 头像
	 */
	@ApiModelProperty(value = "头像")
	private String portrait;
	/**
	 * 密码。MD5加密。
	 */
	@ApiModelProperty(value = "密码。MD5加密。")
	private String password;
	/**
	 * 地区id
	 */
	@ApiModelProperty(value = "地区id")
	private Long regionId;
	/**
	 * 生日
	 */
	@ApiModelProperty(value = "生日")
	private Timestamp birthday;
	/**
	 * 邀请码
	 */
	@ApiModelProperty(value = "邀请码")
	private String inviteCode;
	/**
	 * 绑定的qq账号
	 */
	@ApiModelProperty(value = "绑定的qq账号")
	private String qqAccount;
	/**
	 * 绑定的微信账号
	 */
	@ApiModelProperty(value = "绑定的微信账号")
	private String weixinAccount;
	/**
	 * 绑定的微博账号
	 */
	@ApiModelProperty(value = "绑定的微博账号")
	private String weiboAccount;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Timestamp createTime;
	/**
	 * 线下会员卡
	 */
	@ApiModelProperty(value = "线下会员卡")
	private String memberCard;
	/**
	 * 鸿豆余额。
	 */
	@ApiModelProperty(value = "鸿豆余额。")
	private Float balance;
	/**
	 * 积分余额。
	 */
	@ApiModelProperty(value = "积分余额。")
	private Integer points;
	/**
	 * 奖励总积分
	 */
	@ApiModelProperty(value = "奖励总积分")
	private Integer totalPoints;
	/**
	 * 奖励总金额
	 */
	@ApiModelProperty(value = "奖励总金额")
	private Float totalRewardBalance;
	/**
	 * 可返利余额。\r\n可返利=已返利+待返利
	 */
	@ApiModelProperty(value = "可返利余额。\r\n可返利=已返利+待返利")
	private Float canRebateBalance;
	/**
	 * 可提现余额。
	 */
	@ApiModelProperty(value = "可提现余额。")
	private Float canWithdrawBalance;
	/**
	 * 可提现余额-返利。
	 */
	@ApiModelProperty(value = "可提现余额-返利。")
	private Float canWithdrawBalanceRebate;
	/**
	 * 可提现余额-充值。
	 */
	@ApiModelProperty(value = "可提现余额-充值。")
	private Float canWithdrawBalanceInfund;
	/**
	 * 在返利商城累计消费的金额
	 */
	@ApiModelProperty(value = "在返利商城累计消费的金额")
	private Float totalConsumeAmount;
	/**
	 * 已返利金额
	 */
	@ApiModelProperty(value = "已返利金额")
	private Float alreadyRebateBalance;
	/**
	 * 待返利金额
	 */
	@ApiModelProperty(value = "待返利金额")
	private Float waitRebateBalance;
	/**
	 * 剩余消费金额。\r\n用户剩余消费账户的余额，当满足1825元时，月初进行账单统计时，将自动进入“待返利”中
	 */
	@ApiModelProperty(value = "剩余消费金额。\r\n用户剩余消费账户的余额，当满足1825元时，月初进行账单统计时，将自动进入“待返利”中")
	private Float remainConsumeAmount;
	/**
	 * 上级用户id
	 */
	@ApiModelProperty(value = "上级用户id")
	private Long inviterUserId;
	/**
	 * 用户类型。0:普通用户,1:店长 ,2:业务员
	 */
	@ApiModelProperty(value = "用户类型。0:普通用户,1:店长 ,2:业务员")
	private Integer type;
	/**
	 * 推荐二维码
	 */
	@ApiModelProperty(value = "推荐二维码")
	private String qrcode;
	/**
	 * 角色类型（所属门店）id
	 */
	@ApiModelProperty(value = "角色类型（所属门店）id")
	private Long roleId;

	/**
	 * 
	 */
	@ApiModelProperty(value = "")
	private String eqphone;

	/**
	 * 二级列表
	 */
	@ApiModelProperty(value = "二级列表")
	private List<User> secondUsers;

	private List<User> thirdUsers;

	private int authority;

	private Integer isBank;
	
	private Float successWithdrawBalance;
	
	private int userLevel;
	
	private Float goodRebate;
	
	private Float vipRebate;
	
	private Float vipBalance;
	
	private Float vipBalanceSum;

	/**
	 * @return the vipBalanceSum
	 */
	public Float getVipBalanceSum() {
		return vipBalanceSum;
	}

	/**
	 * @param vipBalanceSum the vipBalanceSum to set
	 */
	public void setVipBalanceSum(Float vipBalanceSum) {
		this.vipBalanceSum = vipBalanceSum;
	}

	/**
	 * @return the goodRebate
	 */
	public Float getGoodRebate() {
		return goodRebate;
	}

	/**
	 * @param goodRebate the goodRebate to set
	 */
	public void setGoodRebate(Float goodRebate) {
		this.goodRebate = goodRebate;
	}

	/**
	 * @return the vipRebate
	 */
	public Float getVipRebate() {
		return vipRebate;
	}

	/**
	 * @param vipRebate the vipRebate to set
	 */
	public void setVipRebate(Float vipRebate) {
		this.vipRebate = vipRebate;
	}

	/**
	 * @return the vipBalance
	 */
	public Float getVipBalance() {
		return vipBalance;
	}

	/**
	 * @param vipBalance the vipBalance to set
	 */
	public void setVipBalance(Float vipBalance) {
		this.vipBalance = vipBalance;
	}

	/**
	 * @return the userLevel
	 */
	public int getUserLevel() {
		return userLevel;
	}

	/**
	 * @param userLevel the userLevel to set
	 */
	public void setUserLevel(int userLevel) {
		this.userLevel = userLevel;
	}

	/**
	 * @return the successWithdrawBalance
	 */
	public Float getSuccessWithdrawBalance() {
		return successWithdrawBalance;
	}

	/**
	 * @param successWithdrawBalance the successWithdrawBalance to set
	 */
	public void setSuccessWithdrawBalance(Float successWithdrawBalance) {
		this.successWithdrawBalance = successWithdrawBalance;
	}

	public Integer getIsBank() {
		return isBank;
	}

	public void setIsBank(Integer isBank) {
		this.isBank = isBank;
	}

	public List<User> getThirdUsers() {
		return thirdUsers;
	}

	public void setThirdUsers(List<User> thirdUsers) {
		this.thirdUsers = thirdUsers;
	}

	public int getAuthority() {
		return authority;
	}

	public void setAuthority(int authority) {
		this.authority = authority;
	}

	public List<User> getSecondUsers() {
		return secondUsers;
	}

	public void setSecondUsers(List<User> secondUsers) {
		this.secondUsers = secondUsers;
	}

	public User() {

	}

	public String getEqphone() {
		return eqphone;
	}

	public void setEqphone(String eqphone) {
		this.eqphone = eqphone;
	}

	public String getPhone() {
		return this.phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getNickname() {
		return this.nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public Integer getSex() {
		return this.sex;
	}

	public void setSex(Integer sex) {
		this.sex = sex;
	}

	public Integer getLevel() {
		return this.level;
	}

	public void setLevel(Integer level) {
		this.level = level;
	}

	public String getPortrait() {
		return this.portrait;
	}

	public void setPortrait(String portrait) {
		this.portrait = portrait;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Long getRegionId() {
		return this.regionId;
	}

	public void setRegionId(Long regionId) {
		this.regionId = regionId;
	}

	public Timestamp getBirthday() {
		return this.birthday;
	}

	public void setBirthday(Timestamp birthday) {
		this.birthday = birthday;
	}

	public String getInviteCode() {
		return this.inviteCode;
	}

	public void setInviteCode(String inviteCode) {
		this.inviteCode = inviteCode;
	}

	public String getQqAccount() {
		return this.qqAccount;
	}

	public void setQqAccount(String qqAccount) {
		this.qqAccount = qqAccount;
	}

	public String getWeixinAccount() {
		return this.weixinAccount;
	}

	public void setWeixinAccount(String weixinAccount) {
		this.weixinAccount = weixinAccount;
	}

	public String getWeiboAccount() {
		return this.weiboAccount;
	}

	public void setWeiboAccount(String weiboAccount) {
		this.weiboAccount = weiboAccount;
	}

	public Timestamp getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}

	public String getMemberCard() {
		return this.memberCard;
	}

	public void setMemberCard(String memberCard) {
		this.memberCard = memberCard;
	}

	public Float getBalance() {
		return this.balance;
	}

	public void setBalance(Float balance) {
		this.balance = balance;
	}

	public Integer getPoints() {
		return this.points;
	}

	public void setPoints(Integer points) {
		this.points = points;
	}

	public Integer getTotalPoints() {
		return this.totalPoints;
	}

	public void setTotalPoints(Integer totalPoints) {
		this.totalPoints = totalPoints;
	}

	public Float getTotalRewardBalance() {
		return this.totalRewardBalance;
	}

	public void setTotalRewardBalance(Float totalRewardBalance) {
		this.totalRewardBalance = totalRewardBalance;
	}

	public Float getCanRebateBalance() {
		return this.canRebateBalance;
	}

	public void setCanRebateBalance(Float canRebateBalance) {
		this.canRebateBalance = canRebateBalance;
	}

	public Float getCanWithdrawBalance() {
		return this.canWithdrawBalance;
	}

	public void setCanWithdrawBalance(Float canWithdrawBalance) {
		this.canWithdrawBalance = canWithdrawBalance;
	}

	public Float getCanWithdrawBalanceRebate() {
		return this.canWithdrawBalanceRebate;
	}

	public void setCanWithdrawBalanceRebate(Float canWithdrawBalanceRebate) {
		this.canWithdrawBalanceRebate = canWithdrawBalanceRebate;
	}

	public Float getCanWithdrawBalanceInfund() {
		return this.canWithdrawBalanceInfund;
	}

	public void setCanWithdrawBalanceInfund(Float canWithdrawBalanceInfund) {
		this.canWithdrawBalanceInfund = canWithdrawBalanceInfund;
	}

	public Float getTotalConsumeAmount() {
		return this.totalConsumeAmount;
	}

	public void setTotalConsumeAmount(Float totalConsumeAmount) {
		this.totalConsumeAmount = totalConsumeAmount;
	}

	public Float getAlreadyRebateBalance() {
		return this.alreadyRebateBalance;
	}

	public void setAlreadyRebateBalance(Float alreadyRebateBalance) {
		this.alreadyRebateBalance = alreadyRebateBalance;
	}

	public Float getWaitRebateBalance() {
		return this.waitRebateBalance;
	}

	public void setWaitRebateBalance(Float waitRebateBalance) {
		this.waitRebateBalance = waitRebateBalance;
	}

	public Float getRemainConsumeAmount() {
		return this.remainConsumeAmount;
	}

	public void setRemainConsumeAmount(Float remainConsumeAmount) {
		this.remainConsumeAmount = remainConsumeAmount;
	}

	public Long getInviterUserId() {
		return this.inviterUserId;
	}

	public void setInviterUserId(Long inviterUserId) {
		this.inviterUserId = inviterUserId;
	}

	public Integer getType() {
		return this.type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public String getQrcode() {
		return this.qrcode;
	}

	public void setQrcode(String qrcode) {
		this.qrcode = qrcode;
	}

	public Long getRoleId() {
		return roleId;
	}

	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}

}